home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 15
/
Aminet 15 - Nov 1996.iso
/
Aminet
/
dev
/
gcc
/
ixemsdk.lha
/
man
/
cat2
/
send.0
< prev
next >
Wrap
Text File
|
1996-09-01
|
4KB
|
86 lines
SEND(2) UNIX Programmer's Manual SEND(2)
NNAAMMEE
sseenndd, sseennddttoo, sseennddmmssgg - send a message from a socket
SSYYNNOOPPSSIISS
##iinncclluuddee <<ssyyss//ttyyppeess..hh>>
##iinncclluuddee <<ssyyss//ssoocckkeett..hh>>
_s_s_i_z_e___t
sseenndd(_i_n_t _s, _c_o_n_s_t _v_o_i_d _*_m_s_g, _s_i_z_e___t _l_e_n, _i_n_t _f_l_a_g_s)
_s_s_i_z_e___t
sseennddttoo(_i_n_t _s, _c_o_n_s_t _v_o_i_d _*_m_s_g, _s_i_z_e___t _l_e_n, _i_n_t _f_l_a_g_s,
_c_o_n_s_t _s_t_r_u_c_t _s_o_c_k_a_d_d_r _*_t_o, _i_n_t _t_o_l_e_n)
_s_s_i_z_e___t
sseennddmmssgg(_i_n_t _s, _c_o_n_s_t _s_t_r_u_c_t _m_s_g_h_d_r _*_m_s_g, _i_n_t _f_l_a_g_s)
DDEESSCCRRIIPPTTIIOONN
SSeenndd(), sseennddttoo(), and sseennddmmssgg() are used to transmit a message to another
socket. SSeenndd() may be used only when the socket is in a _c_o_n_n_e_c_t_e_d state,
while sseennddttoo() and sseennddmmssgg() may be used at any time.
The address of the target is given by _t_o with _t_o_l_e_n specifying its size.
The length of the message is given by _l_e_n. If the message is too long to
pass atomically through the underlying protocol, the error EMSGSIZE is
returned, and the message is not transmitted.
No indication of failure to deliver is implicit in a sseenndd(). Locally de-
tected errors are indicated by a return value of -1.
If no messages space is available at the socket to hold the message to be
transmitted, then sseenndd() normally blocks, unless the socket has been
placed in non-blocking I/O mode. The select(2) call may be used to de-
termine when it is possible to send more data.
The _f_l_a_g_s parameter may include one or more of the following:
#define MSG_OOB 0x1 /* process out-of-band data */
#define MSG_DONTROUTE 0x4 /* bypass routing, use direct interface */
The flag MSG_OOB is used to send ``out-of-band'' data on sockets that
support this notion (e.g. SOCK_STREAM); the underlying protocol must al-
so support ``out-of-band'' data. MSG_DONTROUTE is usually used only by
diagnostic or routing programs.
See recv(2) for a description of the _m_s_g_h_d_r structure.
RREETTUURRNN VVAALLUUEESS
The call returns the number of characters sent, or -1 if an error oc-
curred.
EERRRROORRSS
SSeenndd(), sseennddttoo(), and sseennddmmssgg() fail if:
[EBADF] An invalid descriptor was specified.
[ENOTSOCK] The argument _s is not a socket.
[EFAULT] An invalid user space address was specified for a parame-
ter.
[EMSGSIZE] The socket requires that message be sent atomically, and
the size of the message to be sent made this impossible.
[EAGAIN] The socket is marked non-blocking and the requested opera-
tion would block.
[ENOBUFS] The system was unable to allocate an internal buffer. The
operation may succeed when buffers become available.
[ENOBUFS] The output queue for a network interface was full. This
generally indicates that the interface has stopped sending,
but may be caused by transient congestion.
SSEEEE AALLSSOO
fcntl(2), recv(2), select(2), getsockopt(2), socket(2), write(2)
HHIISSTTOORRYY
The sseenndd() function call appeared in 4.2BSD.
4.2 Berkeley Distribution February 21, 1994 2